Code Smells:\Improving the Design of Existing Code\\\\Kent Beck and Martin Fowler\1999
system
Duplicate code
Methods too big
Classes with\too many instance variables
Strikingly similar subclasses
Parallel inheritance hierarchies
Instance variable\only set in some circumstances
Comparing variables to null
Too many private methods
Many messages to same object\from same method
Verb/Subject construction
Excessive overloading
Same name, different meaning
Extensive set-up
Code not actually ever used
Classes with\too few instance variables
Classes with\too little code
Methods with\no messages to self
Empty catch clauses
Explicitly setting variables to null
Too much documentation
Too many comments needed
Excessive logging
Boredom
Sporadic change velocity
Shotgun surgery
Contrived interfaces
Premature generalisation
Asymmetrical Code
Arrow anti-pattern\(nested if statements)
Law of Demeter violations
Dependency cycles
Methods requiring\special formatting to be readable
Back-pedalling\(loss of context)
Long method names
Vague identifiers
Procedural code\masquerading as objects
Don't name classes\'object', 'manager', 'handler', or 'data'
Embedded code strings
